#!/usr/bin/env python3
"""
参数管理系统客户端快速开始脚本
"""
from param_management_client import ParameterClient


def main():
    """快速开始示例"""
    print("🚀 参数管理系统客户端快速开始")
    print("=" * 50)
    
    try:
        # 创建客户端
        print("1. 创建客户端...")
        client = ParameterClient(
            host="localhost",
            port=8000,
            project_name="energy_optimization_params"
        )
        print("✅ 客户端创建成功")
        
        # 获取项目
        print("\n2. 获取项目数据...")
        project = client.get_project()
        print(f"✅ 项目加载成功: {project.name} ({project.name_en})")
        
        # 显示项目信息
        print(f"\n📊 项目信息:")
        print(f"   名称: {project.name}")
        print(f"   英文名: {project.name_en}")
        print(f"   描述: {project.description}")
        print(f"   时间范围: {project.time_horizon} 年 ({project.start_year}-{project.end_year})")
        print(f"   参数分类: {len(project.categories)} 个")
        
        # 显示分类信息
        print(f"\n📁 参数分类:")
        for category_name in project.categories:
            category = getattr(project, category_name)
            param_count = len(category.list_parameters())
            print(f"   {category.name_en}: {param_count} 个参数")
        
        # 示例：访问风能参数
        print(f"\n🌪️  风能参数示例:")
        wind_params = project.wind_params
        print(f"   分类: {wind_params.name} ({wind_params.name_en})")
        print(f"   描述: {wind_params.description}")
        
        # 显示几个关键参数
        key_params = ["capital_ratio", "unit_investment_cost", "discount_rate"]
        for param_name in key_params:
            if param_name in wind_params.list_parameters():
                param = getattr(wind_params, param_name)
                print(f"   {param.name}: {param.value} {param.unit or ''}")
        
        # 示例：访问列表参数
        print(f"\n📈 列表参数示例:")
        electricity_price = wind_params.electricity_price
        print(f"   参数: {electricity_price.name}")
        print(f"   类型: {electricity_price.param_type} (列表)")
        print(f"   长度: {len(electricity_price)} 年")
        print(f"   单位: {electricity_price.unit}")
        print(f"   前3年: {electricity_price.value[:3]}")
        
        # 示例：访问其他分类
        print(f"\n🔋 储能参数示例:")
        storage_params = project.storage_params
        print(f"   分类: {storage_params.name}")
        energy_ratio = storage_params.energy_storage_ratio
        print(f"   储能比例: {energy_ratio.value} {energy_ratio.unit}")
        
        print(f"\n🎉 快速开始完成！")
        print(f"\n💡 使用提示:")
        print(f"   - 使用 project.category_name.parameter_name 访问参数")
        print(f"   - 使用 parameter.value 获取参数值")
        print(f"   - 使用 parameter.unit 获取参数单位")
        print(f"   - 列表参数支持索引访问和迭代")
        print(f"   - 所有参数都会自动进行类型转换")
        
    except Exception as e:
        print(f"❌ 错误: {e}")
        print(f"\n🔧 故障排除:")
        print(f"   1. 确保参数管理系统服务器正在运行")
        print(f"   2. 检查服务器地址和端口是否正确")
        print(f"   3. 确认项目名称是否正确")
        print(f"   4. 检查网络连接是否正常")


if __name__ == "__main__":
    main()
